# -*- coding:utf-8 -*-
"""
Author：Administrator
Date:2022年01月13日
"""
import requests
from lxml import etree
import os
import time
import re

if not os.path.exists('./财务资料'):
	os.mkdir('./财务资料')

url = "https://www.jkl.com.cn/newsList.aspx"
headers = {
	"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36"}
params = {"current": 2, "TypeId": "10009"}
响应数据 = requests.get(url=url, headers=headers, params=params).text
解析 = etree.HTML(响应数据)
项目名称 = 解析.xpath('//div[@class="infoLis"]//a/text()')
项目链接 = 解析.xpath('//div[@class="infoLis"]//@href')
# print(项目链接)
主页链接 = ['https://www.jkl.com.cn/' + 项目链接 for 项目链接 in 项目链接]
# Id.append(i.split('=')[-1])

# 序号 = list(range(len(Id)+1))
# print(序号)
字典1 = dict(zip(项目名称, 主页链接))
for 项目名称, 主页链接 in 字典1.items():
	项目名称 = 项目名称.replace('/', '_')
	项目名称 = 项目名称.replace('...', '报表')
	路径 = './' + 项目名称
	if not os.path.exists(路径):
		os.mkdir(路径)
	响应数据 = requests.get(url=主页链接, headers=headers).text
	解析 = etree.HTML(响应数据)
	尾页 = 解析.xpath('//a[text()="尾页"]/@href')
	if 尾页 != []:
		正则 = re.search("current=(\d+)&TypeId=(\d+)", 尾页[0])
		页数 = 正则.group(1)
		id = 正则.group(2)
	else:
		页数 = 1
	# print(页数)
	id = 主页链接.split('=')[-1]
	url = 主页链接.split('?')[0]
	# print(url)
	for j in range(1, int(页数) + 1):
		params = {
			"current": int(j),
			"TypeId": int(id)
		}
		响应数据 = requests.get(url=url, headers=headers, params=params).text
		解析 = etree.HTML(响应数据)
		文件名称 = 解析.xpath('//div[@class="newsLis"]//li/a/text()')
		文件链接 = 解析.xpath('//div[@class="newsLis"]//li//@href')
		文件名称 = [文件名称.strip().replace('/', '_').replace('...', '') for 文件名称 in 文件名称]
		if all(文件链接):
			文件链接 = ['https://www.jkl.com.cn' + 文件链接 for 文件链接 in 文件链接]
			字典2 = dict(zip(文件名称, 文件链接))
			for 文件名称, 文件链接 in 字典2.items():
				后缀 = 文件链接.split('.')[-1]
				file_data = requests.get(url=文件链接, headers=headers).content
				path = 路径 + '/' + 文件名称 + '.' + 后缀
				# print(path)
				with open(path, 'wb') as f:
					f.write(file_data)
					print(文件名称 + '下载成功!')
					time.sleep(2)

print('over!')
